package ai.people.netmon.telegram.mapper;

import ai.people.netmon.framework.domain.telegram.entity.Channels;
import ai.people.netmon.framework.domain.telegram.entity.Topic;
import ai.people.netmon.framework.domain.telegram.entity.Users;
import ai.people.netmon.framework.domain.telegram.vo.topic.AnalyzedTopic;
import ai.people.netmon.framework.model.response.PageResponse;
import ai.people.netmon.telegram.domain.request.AnalyzedListRequest;
import ai.people.netmon.telegram.domain.request.topic.RelatedTopicRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 主题分析映射器
 *
 * @author yuanqinglong
 * @date 2022/1/14 18:16
 */
@Mapper
public interface TopicAnalysisMapper extends BaseMapper<Topic> {



    /**
     * 相关群组
     *
     * @param relatedChannelsRequest 相关群组请求参数
     * @return {@link PageResponse}<{@link Channels}>
     */
    List<Channels> relatedChannels(RelatedTopicRequest relatedChannelsRequest);


    /**
     * 相关群组统计
     *
     * @param relatedChannelsRequest 相关群组统计参数
     * @return long
     */
    long relatedChannelsCount(RelatedTopicRequest relatedChannelsRequest);


    /**
     * 相关账户
     *
     * @param relatedTopicRequest 相关账号请求参数
     * @return {@link PageResponse}<{@link Users}>
     */
    List<Users> relatedAccount(RelatedTopicRequest relatedTopicRequest);


    /**
     * 相关账户统计
     *
     * @param relatedTopicRequest 相关账号统计请求
     * @return long
     */
    long relatedAccountCount(RelatedTopicRequest relatedTopicRequest);


    /**
     * 已加主题分析列表
     *
     * @param analyzedListRequest 参数
     * @return {@link List}<{@link AnalyzedTopic}>
     */
    List<AnalyzedTopic> analyzedTopics(AnalyzedListRequest analyzedListRequest);
}
